 1.PB级企业电商离线数仓项目实战(上)
   
   项目背景
   人类正从IT时代走向DT(Data Technology)时代。在DT时代，人们比以往任何时候更
能收集到更丰富的数据。IDC 的报告显示：预计到2020年，全球数据总量将超过40ZB(
相当于40 万亿GB0) (GB、TB、PB、EB、ZB)，这一数据量是2011年的22倍。正在呈"爆
炸式"增长的数据，其潜在的巨大价值有待发掘。
   
   如果不能对这些数据进行有序、有结构地分类组织和存储，不能有效利用并发掘它，
继而产生价值，那么它同时也成为一场“灾难”。无序、无结构的数据犹如堆积如山的
垃圾，给企业带来的是令人咋舌的高额成本。
   
   日益丰富的业态，也带来了各种各样、纷繁复杂的数据需求。 如何有效地满足企业
决策层、管理层、员工、商家、合作伙伴等多样化的需求，提高他们对数据使用的满
意度，是数据服务和数据产品需要面对的挑战。
   
   1).如何建设高效的数据模型和体系，使数据易用，避免重复建设和数据不一致性，
保证数据的规范性；
   2).如何提供高效易用的数据开发工具；
   3).如何做好数据质量保障；
   4).如何有效管理和控制日益增长的存储和计算消耗，保证数据服务的稳定，保证其
性能；
   这些都给大数据系统的建设提出了更多的要求。
   这里介绍的电商离线数据仓库项目，正是为了满足不断变化的业务需求，实现系统的
高度扩展性、灵活性以及数据展现的高性能而设计的。整个项目的讲解分为以下几个部分：
   1).上半部分
      数据仓库理论
      电商离线数据仓库设计
      会员活跃度分析
      广告分析
   2).下半部分
      核心交易分析
      任务调度
	  血缘关系和数据管理
      数据质量监控
      即席查询
 
 2.数据仓库理论之数据仓库中的含义
   
   什么是数据仓库
   1988 年,为解决全企业集成问题，IBM公司第一次提出了信息仓库(Information
Warehouse)的概念。数据仓库的基本原理、技术架构以及分析系统的主要原则都已
确定，数据仓库初具雏形。
   
   1991 年Bill Inmon（比尔·恩门）出版了他的第一本关于数据仓库的书《Building the
Data Warehouse》，标志着数据仓库概念的确立。书中指出，数据仓库(Data
Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳
定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合，用于支持管理决策
(Decision-Making Support)。该书还提供了建立数据仓库的指导意见和基本原
则。凭借着这本书，Bill Inmon被称为数据仓库之父。
 
 3.数据仓库理论之数据仓库四大特征
   
   1).面向主题的
   2).集成的
   3).稳定的
   4).反映历史变化的
   
   1).面向主题的
   与传统数据库面向应用进行数据组织的特点相对应，数据仓库中的数据是面向主题进
行组织的。
   
   什么是主题呢？
   主题是一个抽象的概念，是较高层次上企业信息系统中的数据综合、归类并进行
分析利用的抽象
   在逻辑意义上，它是对应企业中某一宏观分析领域所涉及的分析对象
   面向主题的数据组织方式，就是在较高层次上对分析对象的数据的一个完整、一致的
描述，能完整、统一地刻划各个分析对象所涉及的企业的各项数据，以及数据之间的联
系。所谓较高层次是相对面向应用的数据组织方式而言的，是指按照主题进行数据组织
的方式具有更高的数据抽象级别。
   
   2).集成的
   数据仓库的数据是从原有的分散的多个数据库、数据文件、用户日志中抽取来的，数
据来源可能既有内部数据又有外部数据。操作型数据与分析型数据之间差别很大：
   (1).数据仓库的每一个主题所对应的源数据，在原有的各分散数据库中有重复和不一
致的地方，且来源于不同的联机系统的数据与不同的应用逻辑捆绑在一起
   (2).数据仓库中的数据很难从原有数据库系统直接得到。数据在进入数据仓库之前，
需要经过统一与综合
   
   数据仓库中的数据是为分析服务的，而分析需要多种广泛的不同数据源以便进行比
较、鉴别，数据仓库中的数据会从多个数据源中获取，这些数据源包括多种类型数据库
、文件系统以及Internet网上数据等，它们通过数据集成而形成数据仓库中的数据。
   
   3).稳定的
   数据仓库数据反映的是一段相当长的时间内历史数据的内容，是不同时点的数据库快
照的集合，以及基于这些快照进行统计、综合和重组的导出数据。
   
   数据稳定主要是针对应用而言。数据仓库的用户对数据的操作大多是数据查询或比较
复杂的挖掘，一旦数据进入数据仓库以后，一般情况下被较长时间保留。数据经加工和集
成进入数据仓库后是极少更新的，通常只需要定期的加载和更新。
   
   4).反映历史变化的
   数据仓库包含各种粒度的历史数据。数据仓库中的数据可能与某个特定日期、星期、
月份、季度或者年份有关。虽然数据仓库不会修改数据，但并不是说数据仓库的数据
是永远不变的。数据仓库的数据也需要更新，以适应决策的需要。数据仓库的数据随
时间的变化表现在以下几个方面：
    (1).数据仓库的数据时限一般要远远长于操作型数据的数据时限
    (2).业务系统存储的是当前数据，而数据仓库中的数据是历史数据
    (3).数据仓库中的数据是按照时间顺序追加的，都带有时间属性
 
 4.数据仓库理论之数据仓库作用
   
   1).整合企业业务数据，建立统一的数据中心；
   2).产生业务报表，了解企业的经营状况；
   3).为企业运营、决策提供数据支持；
   4).可以作为各个业务的数据源，形成业务数据互相反馈的良性循环；
   5).分析用户行为数据，通过数据挖掘来降低投入成本，提高投入效果；
   6).开发数据产品，直接或间接地为企业盈利；
   
 5.数据仓库理论之数据仓库与数据库的区别
   
   数据库与数据仓库的区别实际讲的是 OLTP 与 OLAP 的区别。
   
   OLTP（On-Line Transaction Processing 联机事务处理），也称面向交易的处理系
统。主要针对具体业务在数据库系统的日常操作，通常对少数记录进行查询、修改。用户
较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数
据库系统作为数据管理的主要手段，主要用于操作型处理。
  
   OLAP（On-Line Analytical Processing 联机分析处理），一般针对某些主题的历史
数据进行分析，支持管理决策。
   数据仓库的出现，并不是要取代数据库：
     1).数据仓库主要用于解决企业级的数据分析问题或者说管理和决策
     2).数据仓库是为分析数据而设计，数据库是为捕获和存储数据而设计
     3).数据仓库是面向分析，面向主题设计的，即信息是按主题进行组织的，属于分析
型；数据库是面向事务设计的，属于操作型
     数据仓库在设计是有意引入数据冗余（目的是为了提高查询的效率），采用反范式的
方式来设计；数据库设计是尽量避免冗余（第三范式），一般采用符合范式的规则来设计
     4).数据仓库较大，数据仓库中的数据来源于多个异构的数据源，而且保留了企业的
历史数据；数据库存储有限期限、单一领域的业务数据
   
   数据仓库的出现，并不是要取代数据库：
     1).数据库是面向事务的设计，数据仓库是面向主题设计的
     2).数据库存储有限期限的业务数据，数据仓库存储的是企业历史数据
     3)数据库设计尽量避免冗余，数据存储设计满足第三范式，但是便于进行数据分析。
数据仓库在设计时有意引入冗余，依照分析需求，分析维度、分析指标进行设计
     4).数据库是为捕获数据而设计，数据仓库是为分析数据而设计
	 
   以银行业务为例。数据库是事务系统的数据平台，客户在银行做的每笔交易都会写入
数据库，被记录下来，这里，可以简单地理解为用数据库记账。数据仓库是分析系统的数
据平台，它从事务系统获取数据，并做汇总、加工，为决策者提供决策的依据。比如，某
银行某分行一个月发生多少交易，该分行当前存款余额是多少。如果存取款多，消费交易
多，那么该地区就有必要设立ATM了。
   
   银行的交易量是巨大的，通常以百万甚至千万次来计算。事务系统是实时的，这就要
求时效性，客户存一笔钱需要几十秒是无法忍受的，这就要求数据库只能存储很短一段
时间的数据。而分析系统是事后的，它要提供关注时间段内所有的有效数据。这些数据
是海量的，汇总计算起来也要慢一些，但是，只要能够提供有效的分析数据就达到目的了。
   
   数据仓库是在数据库已经大量存在的情况下，为了进一步挖掘数据资源、为了决策需
要而产生的，它决不是所谓的大型数据库。
   对比内容     数据库                           数据仓库
   数据内容     近期值、当前值                   历史的、归档的数据
   数据目标     面向业务操作                     面向管理决策、面向分析(主题)
   数据特性     动态频繁更新                     静态、不能直接更新；定时添加数据
   数据结构     高度结构化、满足第三范式         简单的、冗余的、满足分析的
   使用频率     高                               低
   数据访问量   访问量大；每次访问的数据量少     访问量小；每次访问的数据量大
   对响应时间   高                               低(不敏感)
    的要求
 
 6.数据仓库理论之数据集市(Data Mart DM)
   
   数据仓库（DW）是一种反映主题的全局性数据组织。但全局性数据仓库往往太大，在实
际应用中将它们按部门或业务分别建立反映各个子主题的局部性数据组织，即数据集市(
Data Mart)，有时也称它为部门数据仓库。
   
   数据集市：是按照主题域组织的数据集合，用于支持部门级的数据分析与决策。如在商
品销售的数据仓库中可以建立多个不同主题的数据集市：
    1).商品采购数据集市
    2).商品库存数据集市
    3).商品销售数据集市
   数据集市仅仅是数据仓库的某一部分，实施难度大大降低，并且能够满足企业内部部
分业务部门的迫切需求，在初期获得了较大成功。但随着数据集市的不断增多，这种架
构的缺陷也逐步显现。企业内部独立建设的数据集市由于遵循不同的标准和建设原则，以
致多个数据集市的数据混乱和不一致，形成众多的数据孤岛。
   
   企业发展到一定阶段，出现多个事业部，每个事业部都有各自数据，事业部之间的数
据往往都各自存储，各自定义。每个事业部的数据就像一个个孤岛一样无法(或者极其困
难)和企业内部的其他数据进行连接互动。这样的情况称为数据孤岛，简单说就是数据间
缺乏关联性，彼此无法兼容。
   


   
   
    